1. Field of the Invention
The present invention relates generally to data processing and, in particular, to managing programming tasks. Still more particularly, the present disclosure relates to a method and apparatus for identifying program files to be updated for a programming task.
2. Description of the Related Art
When a software developer is asked to update program code to implement a new function, the software developer typically needs to determine which existing program files to update and whether new program files should be added, and then code the updates and new program files. Often it is difficult to determine which existing program files to update, especially if the software developer is unfamiliar with the program code.
It was known for a software developer to use a source code recommender system to get a recommendation of files to be updated for a program change request. For example, Malheiros et al., “A Source Code Recommender System To Support Newcomers”, IEEE/COMPSAC 36th Annual International Conference on, 16-20 Jul. 2012, Pages 19-24 (Hereinafter Malheiros) discloses recommending files for a change request base on files changed in previous change requests that are similar to the change request. Malheiros discloses making the recommendations based on an assumption that similar change requests have similar solutions. To find the source code files related to an open change request, Malheiros looks for similar change requests that were solved in the past and recommends the files changed to solve them as the related files of the open change request. Malheiros ranks the similarity of the previous change requests to the open change request by similarity of text in change request summaries, change request descriptions, and comments made by developers in the change requests.
However, merely comparing similarity of text in change request summaries, change request descriptions, and comments made by developers in the change requests to identify similar previous change requests can lead to false positive identification of previous change requests that are not useful. For example, the text in a previous change request may include a phrase that falsely makes it appear to be similar to the open change request. Merely comparing similarity of text in change request summaries, change request descriptions, and comments made by developers in the change requests to identify similar previous change requests can also lead to not identifying previous change requests that should be identified, and can further lead to incorrect ranking of similarity between the open change request and previous change requests.
An object of the present invention is to provide a computer-implemented process to determine which existing program files will likely require update to perform a current programming task.